COM Commands for GPRS
COM
COM Used variables:
COM AccessPointName to connect, eg. web.vodafone.de (provider-dependent)
COM
COM Version History:
COM Version 1.0   24.11.2003   R. Weiden	started, with adaption for model C62
COM Version 1.1   01.12.2003   R. Weiden        adapted to R65
COM Version 1.2   02.12.2003   R. Weiden        added AT+CGCLASS, AT+CGAUTO, AT+CGANS
COM Version 1.3   23.08.2003   R. Weiden        adapted to ATT2.0
COM Version 1.4   10.05.2004   T. Kleinmann     added test for CGClass="CG"
COM Version 1.5	  21.02.2005   T. Kleinmann     added URC testing +CGEV:
COM ---------------------------------------------------------------------------------

from attglobals import *

COM AT+CMEE: Extended error messages
AT+CMEE=?
WAIT FOR OK
COM set to 2
AT+CMEE=2
WAIT FOR OK
COM verify...
AT+CMEE?
WAIT FOR +CMEE: 2
AT+CGEREP=1,1
WAIT FOR OK

COM ---------------------------------------------------------------------------------
COM AT+CGCLASS: GPRS mobile station class
AT+CGCLASS=?
WAIT FOR +CGCLASS:
COM switch to GSM only mode (class CC)
AT+CGCLASS="CC"
WAIT FOR OK
COM verify
AT+CGCLASS?
WAIT FOR +CGCLASS: "CC"
COM try nonsense class
AT+CGLASS="X"
WAIT FOR ERROR
AT+CGCLASS="CG"
WAIT FOR OK
COM verify
AT+CGCLASS?
WAIT FOR +CGCLASS: "CG"
COM switch to default class B
AT+CGCLASS="B"
WAIT FOR OK
COM verify
AT+CGCLASS?
WAIT FOR +CGCLASS: "B"

COM ---------------------------------------------------------------------------------
COM AT+CGQREQ: Request quality of service profile
COM Paramters: CID, precedence, delay class, reliability, peak throughput class, mean througput class 
AT+CGQREQ=?
WAIT FOR +CGQREQ
COM set to default values 
AT+CGQREQ=2,0,0,3,0,0
WAIT FOR OK
COM Verify written values
AT+CGQREQ?
WAIT FOR +CGQREQ: 2,0,0,3,0,0 
COM try to write invalid values
AT+CGQREQ=2,5 
WAIT FOR +CME ERROR:
COM set to new values
AT+CGQREQ=2,3,4,3,5,31
WAIT FOR OK
COM Verify written values
AT+CGQREQ?
WAIT FOR +CGQREQ: 2,3,4,3,5,31

COM ---------------------------------------------------------------------------------
COM AT+CGQMIN: Request minimum quality of service
COM Paramters: CID, precedence, delay class, reliability, peak throughput class, mean througput class 
AT+CGQMIN=?
WAIT FOR OK
COM set to default values 
AT+CGQMIN=2,1,1,3,1,1
WAIT FOR OK
COM Verify written values
AT+CGQMIN?
WAIT FOR +CGQMIN: 2,1,1,3,1,1 
COM set to new values
AT+CGQMIN=2,0,0,0,0,31
WAIT FOR OK
COM Verify written values
AT+CGQMIN?
WAIT FOR +CGQMIN: 2,0,0,0,0,31
COM try to write invalid values
AT+CGQMIN=2,1,1,3,1,35
WAIT FOR +CME ERROR:
COM Delete entry
AT+CGQMIN=2
WAIT FOR OK

COM ---------------------------------------------------------------------------------
COM AT+CGDCONT: Define PDP context
COM Paramters: Parameters: <cid> PDP context ID, PDP_TYPE, Access Point Name, data compression flag, header compression flag
AT+CGDCONT=?
WAIT FOR +CGDCONT:
COM clear 2nd entry
AT+CGDCONT=2,"IP", ""
WAIT FOR OK
COM verify written values
AT+CGDCONT?
WAIT FOR +CGDCONT: 2,"IP",""
COM try to write invalid value
AT+CGDCONT=2,"IPX", AccessPointName
WAIT FOR +CME ERROR:
COM set 2nd entry
COM provider-dependent!
AT+CGDCONT=2,"IP", AccessPointName
WAIT FOR OK
COM verify written values
AT+CGDCONT?
WAITFOR (1, '2,"IP","', AccessPointName, '"')

COM ---------------------------------------------------------------------------------
COM AT+CGATT: GPRS attach / detach
AT+CGATT=?
WAIT FOR OK
COM detach gprs
AT+CGATT=0
WAIT FOR OK
COM verify written value
AT+CGATT?
WAIT FOR +CGATT: 0
COM attach GPRS
AT+CGATT=1
WAIT FOR OK
WAIT 5000
COM verify written value
AT+CGATT?
WAIT FOR CGATT: 1

COM ---------------------------------------------------------------------------------
COM AT+CGACT: Activate PDP context
AT+CGACT=?
WAIT FOR +CGACT:
COM deactivate all entries
AT+CGACT=0
WAIT FOR OK
COM try to write nonsense
AT+CGACT=5
WAIT FOR ERROR
COM activate 2nd entry
AT+CGACT=1,2
WAIT FOR OK
COM Verify...
AT+CGACT?
WAIT FOR +CGACT: 2,1

COM ---------------------------------------------------------------------------------
COM AT+CGEREP: GPRS event reporting via unsolicited result codes
AT+CGEREP=?
WAIT FOR +CGEREP:
COM write values
AT+CGEREP=1,0
WAIT FOR OK
COM verify
AT+CGEREP?
WAIT FOR +CGEREP: 1,0
COM write nonsense
AT+CGEREP=2,2
WAIT FOR ERROR
AT+CGEREP=3,1
WAIT FOR ERROR
COM set to 0
AT+CGEREP=0,0
WAIT FOR OK
COM verify
AT+CGEREP?
WAIT FOR 0,0

AT+CGEREP=1,1
WAIT FOR OK
AT+CGACT=0
WAITFOR (1,'+CGEV:')

COM ---------------------------------------------------------------------------------
COM AT+CGPADDR: Assigned address 
AT+CGPADDR=?
WAIT FOR OK
COM Write command
AT+CGPADDR=3
WAIT FOR OK
COM test read command
AT+CGPADDR=2
WAIT FOR +CGPADDR: 2,"
MESSAGE Please verify that received result contains a valid IP Address!

COM ---------------------------------------------------------------------------------
COM AT+CGREG: network registration status
AT+CGREG=?
WAIT FOR +CGREG:
COM set to 1->unsolicited result codes for network registration
AT+CGREG=1
WAIT FOR OK
COM verify
COM <b>Expects mobile to be registered in home network</b>
AT+CGREG?
WAIT FOR +CGREG: 1,1
COM write nonsense value
AT+CGREG=17
WAIT FOR ERROR
COM switch off 
AT+CGREG=0
WAIT FOR OK

COM ---------------------------------------------------------------------------------
COM AT+CGSMS: select service for MO SMS messages
AT+CGSMS=?
WAIT FOR +CGSMS:
COM write silly value
AT+CGSMS=17
WAIT FOR ERROR
COM Set to 'GPRS preferred'
AT+CGSMS=2
WAIT FOR OK
COM Verify
AT+CGSMS?
WAIT FOR +CGSMS: 2
COM Set to 'circuit switched preferred'
AT+CGSMS=3
WAIT FOR OK
COM Verify
AT+CGSMS?
WAIT FOR +CGSMS: 3

COM ---------------------------------------------------------------------------------
COM AT+CGAUTO: Auto response to a network request for PDP context activation
AT+CGAUTO=?
WAIT FOR +CGAUTO:
COM set to o (turn off automatic response)
AT+CGAUTO=0
WAIT FOR OK
COM verify
AT+CGAUTO?
WAIT FOR +CGAUTO: 0
COM try to set a nonsense value
AT+CGAUTO=5
WAIT FOR ERROR
COM set to 3 (modem compatibility mode GPRS and circuit switched calls, DEFAULT)
AT+CGAUTO=3
WAIT FOR OK
COM verify
AT+CGAUTO?
WAIT FOR +CGAUTO: 3

COM ---------------------------------------------------------------------------------
COM AT+CGANS: Manual response to an network request for PDP context activation
AT+CGANS=?
WAIT FOR OK
COM <H1> no further idea how write command AT+CGANS=...could be tested...</H1>

COM ---------------------------------------------------------------------------------
COM AT+CGDATA: Enter data mode 
AT+CGDATA=?
WAIT FOR +CGDATA:
COM check read command
AT+CGDATA?
WAIT FOR ERROR
COM ENTER DATA MODE!
MESSAGE Entering data mode! Sorry, you have to power cycle mobile after connection is established...
AT+CGDATA="PPP", 2
WAIT FOR CONNECT
MESSAGE Data mode successfully established. Now please power cycle mobile...

